home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
tos_updt
/
fmcity
/
palcom
/
auto
/
script
/
autocom.mx
< prev
next >
Wrap
Text File
|
1995-03-24
|
21KB
|
694 lines
//--------------------------------------------------------------------------//
// PALCOM V2.1 L10 //
// 自動通信:自動通信通信部メインスクリプト //
// //
// CopyRight(C) 1994/10/20 //
// FUJITSU PERSONAL COMPUTER SYSTEMS LIMITED //
// written by C-cube Soft T.Nakamura //
//--------------------------------------------------------------------------//
event @OPEN.EXTERN {
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//+++ 前処理 +++//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
$OpenFlg = #FALSE;
$LogId = #FALSE;
$IdxId = #FALSE;
sys.global( $OpenFlg );
sys.global( $IdxId );
sys.global( $LogId );
dialog.openProg([[]," 初 期 設 定 中 で す ",[]],"",#FALSE );
//--- 設定データの取得 ---//
$dataList = AUTO.getAutoData();
$cenList = list.getNth( $dataList, 1 );
if( list.get1st( $cenList ) == 0 ) {
//--- デフォルトのアクセスポイントを使用する ---//
list.del1st( $cenList );
list.put1st( $cenList, list.getNth( AUTO.getDefaultData(), 2 ));
if( list.get1st( $cenList ) == 0 ) {
//--- デフォルトのアクセスポイントが設定されていない ---//
dialog.close();
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 352 );
sys.pushCursor( 80 );
dialog.ask([
"━━━━━━━━━━ 自動通信 ━━━━━━━━━━",
"",
" 標準アクセスポイントが設定されていません。 ",
"",
" 「自動通信の設定」でアクセスポイントの設定を行うか、",
"「自動通信の環境」の「接続環境」で標準アクセスポイント",
"の設定を行ってください。 ",
""],["確認"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
return;
}
}
$mailList = list.getNth( $dataList, 2 );
$forumList = list.getNth( $dataList, 3 );
$hpList = list.getNth( $dataList, 4 );
$bbsList = list.getNth( $dataList, 5 );
$topList = list.getNth( $dataList, 6 );
$expList = list.getNth( $dataList, 7 );
$logList = list.getNth( $dataList, 8 );
$expList2 = list.getNth( $dataList, 9 );
$newsList = list.getNth( $dataList, 10 );
$rsTable = list.get1st( list.getNth( $dataList, 11 ));
//--- アクセスポイント情報の取得 ---//
$apId = trd.init( 9120, -1 );
$path = str.join([$$DIR.STANDARD, "PUBLIC\\APUSER.TRD"],"" );
trd.load( $apId, $path );
$apList = AUTO.getAPlist( $apId, list.get1st( $cenList ));
trd.end( $apId );
if( list.size( $apList ) == 0 ) {
dialog.close();
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 352 );
sys.pushCursor( 80 );
dialog.ask(["━━━━━━━━━━ 自動通信 ━━━━━━━━━━",
"",
" 設定されているアクセスポイントの情報が存在しません。",
" アクセスポイントの設定をやり直してください。 ",
""],["確認"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
return;
}
$apList = list.get1st( $apList );
//--- 電話番号の組み立て ---//
$telNo = "";
if(( list.getNth( $apList, 2 ) != list.get1st( AUTO.getDefaultData()))&&
( list.getNth( $apList, 2 ) != "" )) {
$telNo = str.join([list.getNth( $apList, 2 ), "-"], "" );
}
$telNo = str.join([$telNo, list.getNth( $apList, 6 )], "" );
//--- MNP 設定の有効/無効チェック ---//
$mnpFlg = #FALSE;
foreach( $a, list.getNth( $apList, 5 )) {
if( $a == "MNP" ) {
$mnpFlg = #TRUE;
exit;
}
}
//--- 自動通信設定でローカルな設定値の設定 ---//
$$BBS.TEL1 = $telNo;
$$MDM.EC = $mnpFlg;
$$BBS.REDIAL = list.getNth( $cenList, 2 );
$$BBS.REDIAL.WAIT = list.getNth( $cenList, 3 );
if(( gdb.getMnpClass( $$COM.PORT ) >= 5 )&&( $mnpFlg == #TRUE )) {
table( list.getNth( list.getNth( $apList, 7 ), 2 )) {
1 { $$COM.BAUD = 1200; }
2 { $$COM.BAUD = 2400; }
3 { $$COM.BAUD = 4800; }
4 { $$COM.BAUD = 4800; }
5 { $$COM.BAUD = 9600; }
6 { $$COM.BAUD = 9600; }
7 { $$COM.BAUD = 9600; }
8 { $$COM.BAUD = 19200; }
}
} else {
$comBps = gdb.getComBps( $$COM.PORT );
table( list.getNth( list.getNth( $apList, 7 ), 2 )) {
1 { $$COM.BAUD = 300; }
2 { $$COM.BAUD = 1200; }
3 { $$COM.BAUD = 2400; }
4 {
if( $comBps & 0x08 ) {
$$COM.BAUD = 2400;
} else {
$$COM.BAUD = 1200;
}
}
5 { $$COM.BAUD = 9600; }
6 { $$COM.BAUD = 9600; }
7 { $$COM.BAUD = 9600; }
8 {
if( $comBps & 0x0100 ) {
$$COM.BAUD = 19200;
} else {
$$COM.BAUD = 9600;
}
}
}
}
if( $rsTable == "" ) {
$$TRM.SET.RSTABLE = #FALSE;
} else {
$$TRM.SET.RSTABLE = #TRUE;
$$TRM.RSTABLE = $rsTable;
}
//--- ログインのみ以外の時の設定 ---//
if( list.getNth( $logList, 2 ) != #TRUE ) {
//--- ログファイルをオープンし、ログファイルに割り付ける ---//
if( str.right( $$DIR.LOG, 1 ) != "\\" ) {
$logName = str.join([$$DIR.LOG, "\\NIFUSER.LOG"], "" );
} else {
$logName = str.join([$$DIR.LOG, "NIFUSER.LOG"], "" );
}
$LogId = file.open( $logName, "", 1 );
file.seek( $LogId, 0, 2 );
AUTO.setLogFileName( $logName );
AUTO.setLogFileId( $LogId );
//--- インデックスファイルのオープンを行う ---//
if( str.right( $$DIR.LOG, 1 ) != "\\" ) {
$idxName = str.join([$$DIR.LOG, "\\NIFUSER.IDX"], "" );
} else {
$idxName = str.join([$$DIR.LOG, "NIFUSER.IDX"], "" );
}
$flg = file.exist( $idxName );
if( $flg == #TRUE ) {
$fd = file.open( $idxName, "", 1 );
file.seek( $fd, 0, 2 );
$size = file.tell( $fd );
file.close( $fd );
if( $size < 255 ) {
dialog.close();
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 276 );
sys.pushCursor( 80 );
$ret = dialog.ask([
"━━━━━━ 自動通信の実行 ━━━━━━",
"",
" インデックスファイルに異常があります。 ",
" 再初期化し、実行します。 ",
""],["取消", "実行"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
if( $ret == 1 ) {
file.delete( $idxName );
$flg = #FALSE;
} else {
file.close( $LogId );
$LogId = #FALSE;
return;
}
}
}
$IdxId = lsi.open( $idxName );
//--- インデックスファイルが共有オープンされている場合は ---//
//--- 実行を抑制する ---//
if( lsi.share?( $IdxId ) == #TRUE ) {
dialog.close();
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 276 );
sys.pushCursor( 80 );
dialog.ask(["━━━━━━ 自動通信の実行 ━━━━━━",
"",
" 文書整理/作成が実行されています。 ",
" 自動通信を実行する場合は、文書整理/作成",
"を一度終了させて下さい。 ",
""],["確認"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
file.close( $LogId );
lsi.close( $IdxId );
$LogId = #FALSE;
$IdxId = #FALSE;
return;
}
$list = lsi.getInfo( $IdxId );
if( $flg == #FALSE ) {
list.delNth( $list, 2 );
list.putNth( $list, 1, list.getLast( str.split( $logName, "\\" )));
list.delNth( $list, 3 );
list.putNth( $list, 2, 1 );
list.delNth( $list, 4 );
list.putNth( $list, 3, list.get1st( AUTO.getSetName()));
lsi.setInfo( $IdxId, $list );
}
AUTO.setIdxFileId( $IdxId );
AUTO.setIdxNum( list.get1st( $list ));
//--- 送信文書のマーカの設定 ---//
AUTO.getUpListAll();
}
//--- 自動通信実行情報の設定 ---//
local.setAutoName( AUTO.getDBfileName(), $idxName,
AUTO.getSetName(), $logName );
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//+++ NIFTYにログインする +++//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
AUTO.setWaitChar();
$AUTO.WAIT15 = AUTO.getWaitChar( 15 );
$AUTO.WAIT60 = AUTO.getWaitChar( 60 );
event.mask( @ERROR.PROTOCOL );
event.mask( @DISCONNECT );
event.mask( @CONNECT );
sys.stopIntRec();
dialog.close();
//--- ダイアルスクリプト起動 ---//
$path = str.join([$$DIR.STANDARD, "SCRIPT\\MANUDIAL.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( $$USER.DEFINED.9 != #TRUE ) {
if( $LogId != #FALSE ) {
file.close( $LogId );
$LogId = #FALSE;
}
if( $IdxId != #FALSE ) {
lsi.close( $IdxId );
$IdxId = #FALSE;
}
sys.startIntRec();
goto DISCONNECT;
}
$OpenFlg = #TRUE;
//--- 自動ログインスクリプト起動 ---//
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\NIFLIN.MX"], "" );
table( list.getNth( $apList, 3 )) {
"ROAD1" { $$USER.DEFINED.9 = 1; }
"ROAD2" { $$USER.DEFINED.9 = 2; }
"ROAD3" { $$USER.DEFINED.9 = 3; }
"ROAD4" { $$USER.DEFINED.9 = 4; }
}
script.openExtern( $path, #FALSE, [] );
if( $$USER.DEFINED.9 != #TRUE ) {
if( $LogId != #FALSE ) {
file.close( $LogId );
$LogId = #FALSE;
}
if( $IdxId != #FALSE ) {
lsi.close( $IdxId );
$IdxId = #FALSE;
}
sys.startIntRec();
local.comClose();
$OpenFlg = #FALSE;
event.unmask( @ERROR.PROTOCOL );
event.unmask( @DISCONNECT );
event.unmask( @CONNECT );
$backXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 228 );
sys.pushCursor( 80 );
if( $$USER.DEFINED.9 == #ERROR ) {
dialog.ask(["━━━━━ 自動ログイン ━━━━━",
"",
" 自動ログインに失敗しました。 ",
""],["確認"] );
} elif( $$USER.DEFINED.9 == #TOUT ) {
dialog.ask(["━━━━━ 自動ログイン ━━━━━",
"",
" センターが混雑しているため接続を",
"中断しました。 ",
" 時間をおいて再度接続して下さい。",
""],["確認"] );
} else {
dialog.ask(["━━━━━ 自動ログイン ━━━━━",
"",
" 自動ログインを中断しました。 ",
""],["確認"] );
}
sys.popCursor();
dialog.setDefaultXSize( $backXsize );
return;
}
//--- ここからログを開始する ---//
if( list.getNth( $logList, 2 ) != #TRUE ) {
xfer.recText( $LogId, [] );
}
//--- 前回ログアウト時間のチェック ---//
$infomation = #FALSE;
comtable( $a, 300 ) {
">\w\w" { exit; }
"前回LOG OUT %2d/%2d/%2d %2d:%2d:%2d" {
$time1 = str.right( $a, 20 );
$time2 = list.getNth( trd.getData( AUTO.getTrdId(), [1,3] ), 2 );
if(( $time2 != "" )&&( $time1 != $time2 )) {
$infomation = #TRUE;
}
exit;
}
interval {
if( com.isCD( $$COM.PORT ) == #FALSE ) {
AUTO.disconnect( #FALSE );
goto COM.END;
}
}
}
//--- ログインのみの場合はここで終了 ---//
if( list.getNth( $logList, 2 ) == #TRUE ) {
if( $infomation == #TRUE ) {
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 312 );
sys.pushCursor( 80 );
dialog.ask(["━━━━━━ NIFTY-Serve ログイン ━━━━━━",
"",
"前回ログアウト以降にログインした形跡があります。",
"",
str.join([" 前回ログアウト記録時間:", $time2], "" ),
str.join([" 最終ログアウト形跡時間:", $time1], "" ),
""],["確認"]);
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
}
sys.startIntRec();
goto MANUAL.COM;
}
//--- 自動通信開始 ---//
AUTO.setComFlg( #TRUE );
sys.pushCursor( 80 );
if( $infomation == #FALSE ) {
$strList = [[]," 自 動 通 信 実 行 中 ",[]];
} else {
$strList = [[],
" 自 動 通 信 実 行 中 ",[],
" ",
"前回ログアウト以降にログインした形跡があります",
"",
str.join([" 前回ログアウト記録時間:", $time2], "" ),
str.join([" 最終ログアウト形跡時間:", $time1], "" )];
}
dialog.openProg( $strList, " 中断 ", #FALSE );
AUTO.setHaltFlg( 0 );
sys.enableInt("AUTO.interruptFunc");
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//+++ 自動通信の実体 +++//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//--- コマンド待ちの状態になるまで待つ ---//
//--- 途中のフラッシュニュースの記録も行う ---//
$flg = #FALSE;
comtable( $a, 1200 ) {
$AUTO.WAIT60 { com.putString("\r",[]); }
">\w\w" { exit; } // プロンプト
"☆フラッシュニュース☆" { // フラッシュニュースの開始
$flg = #TRUE;
$list = [7,1];
$ptr = file.tell( $LogId ) + 2;
}
" %b%d/%d%d %b%d:%d%d " { // " xx/xx xx:xx "にマッチ
if( $flg == #TRUE ) {
com.getString( 0, #TRUE, #TRUE );
$ptr2 = file.tell( $LogId );
}
}
interval {
if( com.isCD( $$COM.PORT ) == #FALSE ) {
AUTO.disconnect( #FALSE );
goto COM.END;
}
}
}
if( $flg == #TRUE ) {
//--- フラッシュニュースの記録を ---//
//--- インデックスファイルに書き込む ---//
AUTO.writeIdx([[0x501,[15,[1,5,-1,-1,-1,-1,-1,-1,-1,-1]]],
[0x303,[0x01,0x00,$ptr,$ptr2-$ptr,0,0,0]]] );
}
//--- FJCUG(富士通全社パソコン通信サービス)の場合 ---//
//--- 無理矢理 NIFTY-Serve へ入る ---//
if( $$BBS.TYPE == "CUG" ) {
AUTO.sendCommand("GO NIF");
AUTO.sendCommand("1");
}
sys.startIntRec();
//--- フォーラムを巡回する ---//
if(( list.getNth( $forumList, 1 ) == #TRUE )||
( list.getNth( $forumList, 2 ) == #TRUE )||
( list.getNth( $forumList, 3 ) == #TRUE )) {
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\FORMCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- HPを巡回する ---//
if(( list.getNth( $hpList, 1 ) == #TRUE )||
( list.getNth( $hpList, 2 ) == #TRUE )) {
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\HPCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- メールのUP/DOWN ---//
$flg = #FALSE;
if(( list.getNth( $mailList, 1 ) == #TRUE )||
( list.getNth( $mailList, 2 ) == #TRUE )) {
$path = str.join([$$DIR.STANDARD,"AUTO\\SCRIPT\\MAILCOM.MX"],"" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- 掲示板を読む ---//
if(( list.getNth( $bbsList, 1 ) == #TRUE )||
( list.getNth( $bbsList, 2 ) == #TRUE )) {
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\BBSCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- フォーラム一覧を取得する ---//
if( list.getNth( $forumList, 4 ) == #TRUE ) {
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\FLISTCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- エグゼクティブオプションの設定 ---//
if( list.get1st( $expList ) == #TRUE ) {
$$USER.DEFINED.9 = $expList2;
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\EXPCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- フラッシュニュースの設定 ---//
if(( list.get1st( $expList ) == #TRUE )&&
( list.get1st( $expList2 ) == #TRUE )) {
//--- エグゼクティブオプションを解除した場合は ---//
//--- 同時にフラッシュニュースも解除されるので ---//
//--- フラッシュニュース設定の巡回を抑制する ---//
;
} elif( list.getNth( $expList, 2 ) == #TRUE ) {
$$USER.DEFINED.9 = $newsList;
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\NEWSCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- 課金情報を見る ---//
if( list.getNth( $topList, 1 ) == #TRUE ) {
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\BILLCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( AUTO.getHaltFlg() != 0 ) {
goto COM.END;
}
}
//--- センターから抜ける ---//
//--- 途中のフラッシュニュースの記録も行う ---//
$LogId = AUTO.getLogFileId();
$IdxId = AUTO.getIdxFileId();
com.putString("BYE\r", [] );
sys.stopIntRec();
$haltFlg = #FALSE;
$exitFlg = #FALSE;
$flg = #FALSE;
comtable( $a, 1200 ) {
$AUTO.WAIT60 { exit; }
"01+" { $haltFlg = #TRUE; exit; }
"ございました。\n" {
sys.deleteInt("AUTO.interruptFunc");
xfer.endText( $LogId );
}
"*\w\w" {
$haltFlg = #TRUE;
time.delay( 1 );
com.putString("OFF\r",[]);
}
"LOG OUT --- %2d/%2d/%2d %2d:%2d:%2d" {
// ログアウト時間の記録
trd.setData( AUTO.getTrdId(), [1,3], str.right( $a, 20 ));
AUTO.setTrdUpdateFlg();
}
"☆フラッシュニュース☆" { // フラッシュニュースの開始
$flg = #TRUE;
$list = [7,1];
$ptr = file.tell( $LogId ) + 2;
}
" %b%d/%d%d %b%d:%d%d " { // " xx/xx xx:xx "にマッチ
if( $flg == #TRUE ) {
com.getString( 0, #TRUE, #TRUE );
$ptr2 = file.tell( $LogId );
}
}
interval {
if( com.isCD( $$COM.PORT ) == #FALSE ) {
if( $haltFlg == #TRUE ) {
exit;
}
AUTO.disconnect( #FALSE );
goto COM.END;
}
}
}
if( $flg == #TRUE ) {
//--- フラッシュニュースの記録を ---//
//--- インデックスファイルに書き込む ---//
AUTO.writeIdx([[0x501,[15,[1,5,-1,-1,-1,-1,-1,-1,-1,-1]]],
[0x303,[0x01,0x00,$ptr,$ptr2-$ptr,0,0,0]]] );
}
AUTO.waitPrompt( #FALSE );
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//+++ 後処理 +++//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
COM.END:
sys.popCursor();
sys.deleteInt("AUTO.interruptFunc");
if( dialog.check() == #TRUE ) {
dialog.close();
}
$LogId = AUTO.getLogFileId();
$IdxId = AUTO.getIdxFileId();
if( AUTO.getHaltFlg() != 0 ) {
xfer.endText( $LogId );
}
file.close( $LogId );
$list = lsi.getInfo( $IdxId );
list.del1st( $list );
list.put1st( $list, AUTO.getIdxNum());
lsi.setInfo( $IdxId, $list );
lsi.close( $IdxId );
sys.startIntRec();
AUTO.setComFlg( #FALSE );
$LogId = #FALSE;
$IdxId = #FALSE;
//--- 通信続行中断の場合 ---//
if( AUTO.getHaltFlg() == 2 ) {
MANUAL.COM:
//--- 手動通信モードに移行 ---//
sys.pushCursor( 81 );
$$BIN.AUTO.B = #TRUE;
obj.beginUpdateButton();
local.manuTrans();
local.btnConnectMode();
obj.endUpdateButton();
sys.enableMenu( #TRUE );
sys.enableButton( #TRUE );
sys.pushCursor( 80 );
// 手動通信モード時は、スクリプト実行優先度を強制的に下げる
$priority.fore = $$PRIORITY.FORE;
$priority.back = $$PRIORITY.BACK;
$$PRIORITY.FORE = 0;
$$PRIORITY.BACK = 0;
$logout = #FALSE;
comtable( $a, 0 ) {
"LOG OUT --- %2d/%2d/%2d %2d:%2d:%2d" {
// ログアウト時間の記録
if( $logout == #FALSE ) {
trd.setData( AUTO.getTrdId(), [1,3], str.right( $a, 20 ));
AUTO.setTrdUpdateFlg();
$logout = #TRUE;
}
}
interval {
if( com.isCD( $$COM.PORT ) == #FALSE ) {
exit;
}
}
}
$$PRIORITY.FORE = $priority.fore;
$$PRIORITY.BACK = $priority.back;
sys.popCursor();
sys.disableButton( #TRUE );
sys.disableMenu( #TRUE );
//--- 手動通信の終了 ---//
if( com.isDTR( $$COM.PORT ) == #TRUE ) {
local.comClose();
}
local.manuEnd();
$OpenFlg = #FALSE;
sys.popCursor();
$$BIN.AUTO.B = #FALSE;
}
DISCONNECT:
if( $OpenFlg == #TRUE ) {
local.comClose();
$OpenFlg = #FALSE;
}
event.unmask( @DISCONNECT );
event.unmask( @CONNECT );
return;
}
event @CLOSE.EXTERN {
if( $OpenFlg == #TRUE ) {
if( $LogId != #FALSE ) {
$LogId = AUTO.getLogFileId();
xfer.endText( $LogId );
file.close( $LogId );
}
if( $IdxId != #FALSE ) {
$list = lsi.getInfo( $IdxId );
list.del1st( $list );
list.put1st( $list, AUTO.getIdxNum());
lsi.setInfo( $IdxId, $list );
lsi.close( $IdxId );
}
local.comClose();
AUTO.setComFlg( #FALSE );
}
if( dialog.check() == #TRUE ) {
sys.popCursor();
dialog.close();
}
sys.local( $OpenFlg );
sys.local( $LogId );
sys.local( $IdxId );
sys.deleteInt("AUTO.interruptFunc");
event.unmask( @DISCONNECT );
event.unmask( @CONNECT );
sys.startIntRec();
return;
}
event @ERROR {
if( dialog.check() == #TRUE ) {
dislog.close();
}
sys.startIntRec();
AUTO.fatalError();
event.mainLoop();
}